// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package com.sina.weibo.sdk.auth;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Window;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import com.sina.weibo.sdk.exception.WeiboAuthException;
import com.sina.weibo.sdk.utils.NetworkHelper;
import com.sina.weibo.sdk.utils.ResourceManager;
import com.sina.weibo.sdk.utils.Utility;
// Referenced classes of package com.sina.weibo.sdk.auth:
// WeiboAuthListener, WeiboAuth
public class WeiboDialog extends Dialog
{
private static final String TAG = "WeiboDialog";
private static final int WEBVIEW_CONTAINER_MARGIN_TOP = 25;
private static final int WEBVIEW_MARGIN = 10;
private static int theme = 0x1030010;
private String mAuthUrl;
private Context mContext;
private boolean mIsDetached;
private WeiboAuthListener mListener;
private ProgressDialog mLoadingDlg;
private RelativeLayout mRootContainer;
private WebView mWebView;
private RelativeLayout mWebViewContainer;
private WeiboAuth mWeibo;
public WeiboDialog(Context context, String s, WeiboAuthListener weiboauthlistener, WeiboAuth weiboauth)
{
super(context, theme);
mIsDetached = false;
mAuthUrl = s;
mListener = weiboauthlistener;
mContext = context;
mWeibo = weiboauth;
}
private void handleRedirectUrl(String s)
{
Bundle bundle = Utility.parseUrl(s);
String s1 = bundle.getString("error");
String s2 = bundle.getString("error_code");
String s3 = bundle.getString("error_description");
if (s1 == null && s2 == null)
{
mListener.onComplete(bundle);
return;
} else
{
mListener.onWeiboException(new WeiboAuthException(s2, s1, s3));
return;
}
}
private void initCloseButton()
{
ImageView imageview = new ImageView(mContext);
Drawable drawable = ResourceManager.getDrawable(mContext, 2);
imageview.setImageDrawable(drawable);
imageview.setOnClickListener(new _cls1());
android.widget.RelativeLayout.LayoutParams layoutparams = new android.widget.RelativeLayout.LayoutParams(-2, -2);
android.widget.RelativeLayout.LayoutParams layoutparams1 = (android.widget.RelativeLayout.LayoutParams)mWebViewContainer.getLayoutParams();
layoutparams.leftMargin = 5 + (layoutparams1.leftMargin - drawable.getIntrinsicWidth() / 2);
layoutparams.topMargin = 5 + (layoutparams1.topMargin - drawable.getIntrinsicHeight() / 2);
mRootContainer.addView(imageview, layoutparams);
}
private void initLoadingDlg()
{
mLoadingDlg = new ProgressDialog(getContext());
mLoadingDlg.requestWindowFeature(1);
mLoadingDlg.setMessage(ResourceManager.getString(mContext, 1));
}
private void initWebView()
{
mWebViewContainer = new RelativeLayout(getContext());
mWebView = new WebView(getContext());
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setSavePassword(false);
mWebView.setWebViewClient(new WeiboWebViewClient(null));
mWebView.requestFocus();
mWebView.setScrollBarStyle(0);
mWebView.setVisibility(4);
NetworkHelper.clearCookies(mContext, mAuthUrl);
mWebView.loadUrl(mAuthUrl);
android.widget.RelativeLayout.LayoutParams layoutparams = new android.widget.RelativeLayout.LayoutParams(-1, -1);
android.widget.RelativeLayout.LayoutParams layoutparams1 = new android.widget.RelativeLayout.LayoutParams(-1, -1);
DisplayMetrics displaymetrics = getContext().getResources().getDisplayMetrics();
int i = (int)(10F * displaymetrics.density);
layoutparams1.setMargins(i, i, i, i);
Drawable drawable = ResourceManager.getNinePatchDrawable(mContext, 1);
mWebViewContainer.setBackgroundDrawable(drawable);
mWebViewContainer.addView(mWebView, layoutparams1);
mWebViewContainer.setGravity(17);
int j = 1 + ResourceManager.getDrawable(mContext, 2).getIntrinsicWidth() / 2;
layoutparams.setMargins(j, (int)(25F * displaymetrics.density), j, j);
mRootContainer.addView(mWebViewContainer, layoutparams);
}
private void initWindow()
{
requestWindowFeature(1);
getWindow().setFeatureDrawableAlpha(0, 0);
getWindow().setSoftInputMode(16);
mRootContainer = new RelativeLayout(getContext());
mRootContainer.setBackgroundColor(0);
addContentView(mRootContainer, new android.view.ViewGroup.LayoutParams(-1, -1));
}
public void dismiss()
{
if (!mIsDetached)
{
if (mLoadingDlg != null && mLoadingDlg.isShowing())
{
mLoadingDlg.dismiss();
}
super.dismiss();
}
}
public void onAttachedToWindow()
{
mIsDetached = false;
super.onAttachedToWindow();
}
public void onBackPressed()
{
super.onBackPressed();
if (mListener != null)
{
mListener.onCancel();
}
}
protected void onCreate(Bundle bundle)
{
super.onCreate(bundle);
initWindow();
initLoadingDlg();
initWebView();
initCloseButton();
}
public void onDetachedFromWindow()
{
if (mWebView != null)
{
mWebViewContainer.removeView(mWebView);
mWebView.stopLoading();
mWebView.removeAllViews();
mWebView.destroy();
mWebView = null;
}
mIsDetached = true;
super.onDetachedFromWindow();
}
private class _cls1
implements android.view.View.OnClickListener
{
final WeiboDialog this$0;
public void onClick(View view)
{
dismiss();
if (mListener != null)
{
mListener.onCancel();
}
}
_cls1()
{
this$0 = WeiboDialog.this;
super();
}
}
private class WeiboWebViewClient extends WebViewClient
{
private boolean isCallBacked;
final WeiboDialog this$0;
public void onPageFinished(WebView webview, String s)
{
LogUtil.d("WeiboDialog", (new StringBuilder("onPageFinished URL: ")).append(s).toString());
super.onPageFinished(webview, s);
if (!mIsDetached && mLoadingDlg != null)
{
mLoadingDlg.dismiss();
}
mWebView.setVisibility(0);
}
public void onPageStarted(WebView webview, String s, Bitmap bitmap)
{
LogUtil.d("WeiboDialog", (new StringBuilder("onPageStarted URL: ")).append(s).toString());
if (s.startsWith(mWeibo.getAuthInfo().getRedirectUrl()) && !isCallBacked)
{
isCallBacked = true;
handleRedirectUrl(s);
webview.stopLoading();
dismiss();
} else
{
super.onPageStarted(webview, s, bitmap);
if (!mIsDetached && mLoadingDlg != null && !mLoadingDlg.isShowing())
{
mLoadingDlg.show();
return;
}
}
}
public void onReceivedError(WebView webview, int i, String s, String s1)
{
LogUtil.d("WeiboDialog", (new StringBuilder("onReceivedError: errorCode = ")).append(i).append(", description = ").append(s).append(", failingUrl = ").append(s1).toString());
super.onReceivedError(webview, i, s, s1);
if (mListener != null)
{
mListener.onWeiboException(new WeiboDialogException(s, i, s1));
}
dismiss();
}
public boolean shouldOverrideUrlLoading(WebView webview, String s)
{
LogUtil.i("WeiboDialog", (new StringBuilder("load URL: ")).append(s).toString());
if (s.startsWith("sms:"))
{
Intent intent = new Intent("android.intent.action.VIEW");
intent.putExtra("address", s.replace("sms:", ""));
intent.setType("vnd.android-dir/mms-sms");
getContext().startActivity(intent);
return true;
} else
{
return super.shouldOverrideUrlLoading(webview, s);
}
}
private WeiboWebViewClient()
{
this$0 = WeiboDialog.this;
super();
isCallBacked = false;
}
WeiboWebViewClient(WeiboWebViewClient weibowebviewclient)
{
this();
}
}
}